Author:Hongyu Xiao
Graduate Student
University of Illinois at Urbana–Champaign
August, 2020
请联系我!
邮箱是:hongyu.xiao@hotmail.com
标题开头为: PEK_Summer_Question
例如 PEK_Summer_Question anaconda无法下载
Jupyter Notebook的之前被叫做IPython Notebook, 是基于Python环境下的一套集成了代码执行,富文本编辑,数学符号,以及多媒体影音嵌入的交互环境。 这个项目广泛受到大家的喜爱,现在已经从单纯的Python基础发展成为更广泛的Jupyter Lab,你可以使用更多的语言在Jupyter里面运行,并且获得实时的结果。
这个工具是免费的!
我们写代码,运行代码一般的流程是:
1 写代码
2 编译 (2.1 报错 2.2 调试 2.3 再次报错 2.4 再次调试...)
3 查看屏幕的输出或者是输出文件
这个过程不便之处在于,我们在报错和调试的过程中,我们无法直观的实时看到程序中某一个或者某一些的变量或者中间输出文件,降低了我们编程的效率。Jupyter Notebook的cell类似于 Matlab中的cell功能,可以用来建离一定的调试断点,并且保存显示的输出。加上Jupyter Notebook支持Markdown语法而且对数学符号和多媒体的嵌入非常友好。特别适合边学边试的了解程序运行的过程和结果。
举个例子
# 我是Python代码
# 我是例子
print ("欢迎参加北京大学暑期课")
你可以看到代码 print ("欢迎参加北京大学暑期课程")
并且运行它, 运行结果将会显示在这个cell的下方。
而且你可以去尝试更改代码中的内容,例如你把 print ("欢迎参加北京大学暑期课程")
改为 print ("北京大学今儿真热")
,并且点击上方的运行
修改一下例子
# 我是Python代码
# 我是修改过的例子
print ("北京大学今儿真热")
在接下来教程中,我们希望大家可以充分利用这种交互性,对各种命令和程序进行自己的探索,以达到加深了解的的目的。
对于本次的暑期课程,我们需要安装的工具和模块有
工具: Anaconda / Jupyter Notebook
Anaconda: 这是一个模块管理工具,便于我们进行Python模块的管理
Jupyter Notebook: 交互运行工具
Python Module: Obspy / Scipy / Numpy / Matplotlib
注: 模块之间可能有依赖关系,anaconda会自动配置相关依赖
Windows下请先开启WSL,并且安装Ubuntu
管理员权限打开 PowerShell. 在开始菜单中,输入PowerShell,右键Windows PowerShell选择管理员权限运行
在Windows PowerShell command window 中, 拷贝并复制以下代码以开启WSL功能:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Windows下Anaconda的安装
下载installer,管理员权限运行安装即可。
Mac下Anaconda的安装
Linux下Anaconda的安装
更换到下载目录,打开terminal,输入以下命令: bash Anaconda3-2020.07-Linux-x86_64.sh
如何验证安装完毕?
Windows下
Win
键,然后输入prompt,打开Anaconda Prompt (Anaconda3)
并且输入 conda list
,如果看到列出的python相关module即说明成功。
Mac下
Cmd+Space
打开 Spotlight Search 输入 “Navigator” 打开程序
输入 conda list
,如果看到列出的python相关module即说明成功。
Linux下
在terminal中输入 conda init
以后重新开启 terminal
输入 conda list
,如果看到列出的python相关module即说明成功。
打开anaconda prompt,你会看到类似
(base) C:\Users\Hongyu>
这样的信息,这说明此时你的conda已经启动,并且你在base环境中
在prompt中输入
conda create --name PKU_Summer python=3
即建立起一个python3.x的环境,环境名称为PKU_Summer。
之所以建立起一个独立的python编译环境而不是使用base是为了避免各种package版本之间相互污染。
建议针对不同的项目每一次都进行不同的环境进行区隔。
你应该会看到类似的信息
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: C:\Users\Hongyu\Anaconda3\envs\PKP
added / updated specs:
- python=3
The following NEW packages will be INSTALLED:
ca-certificates conda-forge/win-64::ca-certificates-2020.4.5.1-hecc5488_0
certifi conda-forge/win-64::certifi-2020.4.5.1-py38h32f6830_0
openssl conda-forge/win-64::openssl-1.1.1g-he774522_0
pip conda-forge/noarch::pip-20.1-pyh9f0ad1d_0
python conda-forge/win-64::python-3.8.2-h5fd99cc_7_cpython
python_abi conda-forge/win-64::python_abi-3.8-1_cp38
setuptools conda-forge/win-64::setuptools-46.4.0-py38h32f6830_0
sqlite conda-forge/win-64::sqlite-3.30.1-hfa6e2cd_0
vc conda-forge/win-64::vc-14.1-h869be7e_1
vs2015_runtime conda-forge/win-64::vs2015_runtime-14.16.27012-h30e32a0_2
wheel conda-forge/noarch::wheel-0.34.2-py_1
wincertstore conda-forge/win-64::wincertstore-0.2-py38_1003
Proceed ([y]/n)?
输入 y
以继续
然后我们就建立环境成功,接下来进入这个环境中
在prompt中输入
conda activate PKU_Summer
然后你会看到
(PKU_Summer) C:\Users\Hongyu>
接下来安装jupyter notebook
conda install -c conda-forge jupyterlab
输入
y
安装numpy/obspy/matplotlib/scipy
conda install numpy
然后输入 y
conda install -c conda-forge scipy
然后输入 y
conda install -c conda-forge matplotlib
然后输入 y
conda install -c conda-forge obspy
然后输入 y
安装其他任何python package
一般语法为 : conda install ****
conda activate PKU_Summer
jupyter notebook
此时应该会自动打开本地浏览器运行jupyter notebook ,如果未打开,请复制在terminal里面出现的地址链接,复制并粘贴到浏览器地址栏。
此时你就打开了一个jupyter notebook
当你进入到jupyter notebook的时候你看到的默认界面如下:
依次说明一下内容和使用方法:
我们最常用的是第一个按钮保存 和 Run
代表的是运行这个cell内的代码
需要注意的是,这里的markdown
显示的是cell的格式,只有code
格式才是可以运行的代码
markdown
格式的,主要是用来阅读的如果你看到一个cell前面有个in[XX],格式为code
,代表这个cell里的内容是可以更改并且本地运行的!
程序运行的输出会之间显示在cell下面
请参考下面的一个cell,并可以随意修改其中内容,修改完毕后,点击上方的Run
按钮运行这个cell内的代码:
print ("Hello PKU Summer!")
在默认情况下,我们code应该为python3.x代码
但是jupyter notebook同样支持在cell中进行shell命令的调试
具体要求是在cell开头进行一个%%bash
的声明
请参考下面一个cell,并可以随意修改其中内容, 点击上方的Run
按钮运行这个cell内的代码:
%%bash
echo 'Hello I am printing from Shell !'
在cell中的代码可以反复修改和运行,并且即时看到结果。